iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會展開使用 Avalonia UI 技術所建立的 TopAOAIConnector App 。由於使用 Avalonia UI 可以很快速的進行各平台的 桌面 應用程式開發,並且透過此 TopAOAIConnector App 來串接 Azure OpenAI Service 時所需的功能研究。

本篇是 就是要來點 A.I. 的 TopAOAIConnector App 系列文的 EP04。


在前一回 EP 03 提到有關 WSL 的部分,不免俗地來科普一下 WSL 全名是 Windows Subsystem for Linux。相關的安裝方式可以參考 微軟的 Learn 文件,結論就是在 Windows 可以直接使用 Linux 相關方式來操作系統。

安裝 WSL 後可透過 Windows 命令提示字元指令 "wsl --version" 來確認相關的版本資訊:
01

若透過 "wsl --list --online" 指令,查詢想要直接透過線上安裝哪套 Linux 散發套件 (預設安裝的是 Ubuntu 那套,如下圖紅框)
02

再透過指令 "wsl" 就能進入該 Ubuntu 的環境,此時就可以透過 "uname -a" 指令查詢到目前的 Linux 系統核心資訊:
03

接著為了後面能讓 Avalonia UI 專案順遂執行,在這邊先透過 apt 安裝 .NET 8 的環境,請透過指令 "sudo apt install -y dotnet-sdk-8.0" 進行安裝。

安裝完成後即可透過 dotnet --version 進行查詢版本狀況:
04

再繼續透過 apt 來安裝三個 Avalonia UI 專案要直接從 Visaul Studio 在 WSL 的 Ubuntu 來偵錯執行時需要的 Library:

  1. libfontconfig1
  2. libice6
  3. libsm6

請依序執行下列三個指令:

sudo apt install libfontconfig1
sudo apt install libice6
sudo apt install libsm6

然後,就可以回到 Windows 下的 Visaul Studio 執行並偵錯該 Avalonia UI 專案了~~~
05

那如果不安裝上述三個 Libraries 會發生什麼事?可以執行下列三個指令來移除:

sudo apt remove libfontconfig1
sudo apt remove libice6
sudo apt remove libsm6

再次從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。

會遇到缺少 libfontconfig1 的 Exception:

System.TypeInitializationException: 'The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.'

InnerException:
System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:  libfontconfig.so.1: cannot open shared object file: No such file or directory...(略)

06-1

把 libfontconfig1 在 WSL 當中裝回來,再從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。

會遇到缺少 libice6 的 Exception:

System.DllNotFoundException: 'Unable to load shared library 'libICE.so.6' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. 

06-2

把 libice6 在 WSL 當中裝回來,再從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。

會遇到缺少 libsm6 的 Exception:

System.DllNotFoundException: 'Unable to load shared library 'libSM.so.6' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace

06-3

所以就再把 libsm6 在 WSL 當中裝回來,就可以正常偵錯執行該 Avalonia UI 專案囉~~~

另外,如果不是要讓 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案的話,是可以就不用這樣做,但這就真的不是本系列介紹該討論的範圍了。

好啦~~~

下回就真的要開始回到 TopAOAIConnector App 本身的相關進展了,掰掰!


上一篇
EP 03
下一篇
EP 05
系列文
就是要來點 A.I. 的 TopAOAIConnector App30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言